1. Field of the Invention
The invention relates to the field of printing systems and, in particular, to print controllers having an improved manner of notifying applications of changes to parameters of the printing system.
2. Statement of the Problem
Printing systems associated with data processing enterprises generally include a localized print controller within the printing system. The print controller controls overall operation of the printing system including, for example, host interfacing, page description language interpretation, rasterising, and lower level process control or interface features of the print engine associated with the printing system. Host interaction may include appropriate adapters for coupling the printing system to host systems utilizing one or more communication media and one or more communication protocols. Raw print jobs are received by the printing system from the attached host systems. The raw print jobs are generally encoded in the form of a page description language, such as PostScript, Hewlett-Packard PCL, Intelligent Printer Data Stream (IPDS), etc. In addition, raw print jobs may be encoded as simple character streams (ASCII) with no page description formatting associated therewith. In whatever form the raw print job may be encoded or formatted, the print controller within the printing system interprets the received information to generate rasterized images of pages represented by the raw print job. Each rasterized page image generally comprises a 2-dimensional array of picture elements (“pixels”) that represent a corresponding formatted page of the raw print job. Each pixel may represent an encoded color value in accordance with the requirements of the particular raw print job encoding and the capabilities of the printing system on which the print job is to be printed. The process of interpreting the raw print job to generate corresponding rasterized page images is typically referred to as “ripping” and the sequences of rasterized pages may be referred to as a “ripped print job” or “rasterized print job”.
The print controller may store or buffer one or more ripped print jobs in accordance with storage capabilities of the particular architecture of a particular print controller. Each ripped print job comprises one or more rasterized images, each referred to as a “logical page” of the ripped print job. The print controller may then apply the logical pages to a print engine (sometimes also referred to as an “imaging engine” or as a “marking engine”). The print engine then interacts with the imaging process to mark the printable medium (e.g., the sheet of paper) with the logical pages provided by the print controller. For example, where the print engine is an electrophotographic imaging engine (e.g., a laser print engine), a laser or other optical imaging system transfers each logical page rasterized image through photosensitive materials to corresponding pixels on paper formed as particles of toner electrostatically transferred to the paper.
Printing systems have a plurality of parameters that are used by the print controller and other embedded devices. For instance, parameters of a printing system may be paper length, paper width, paper weight, etc. One or more of the parameters may change during operation. Print controllers, and other systems associated with a printing system, include multiple applications (also known as processes or tasks) that are running. These applications operate using the parameters. When a change is made to one or more of the parameters, the applications may need to be notified of the parameter change.
One way to notify the applications of parameter changes is to have each application register for the parameters that it needs to be notified of as the values change. When a parameter does change, a component in the print controller that handles the parameters sends messages to the applications that have registered for that parameter.
Multiple related parameters in a printing system may change simultaneously. For instance, in a laser printer, paper size is specified with a length and width. A new paper size is set up by entering a length and width simultaneously. In a traditional print controller, a change to two related parameters such as this requires sending multiple notification messages to the applications registered for these parameters. One notification message is sent for paper length, and one notification message is sent for paper width. Responsive to receiving a notification messages, an application may need to reprocess previously processed data based on the new parameter values. It is a problem in the art to send multiple notification messages when multiple related parameters are changed due to the inefficiency of the process.
Parameters of the printing system may be strings, integers, or structures. Structures are comprised of a plurality of fields of various data types. When a parameter is a structure, change notification to the applications is done on the basis of the structure as a whole. Regardless of whether a single bit is changed or many whole fields are changed, a notification message is sent out to the registered applications indicating the new structure as a whole. The notification message does not identify which bits or which fields have changed within the structure.
The application receiving the new structure may assume that each field in the structure has changed, and the application may have to reprocess previously processed data for each of the fields. Unfortunately, this is a waste of processing time. Alternatively, the application receiving the new structure may need to store an old copy of the structure, and compare the old copy to the new copy to determine the changed values. This alternative requires that each application store an old copy of the structure which increases memory usage. This alternative also requires that each application includes code to do the comparison and identify the changed fields, further increasing memory usage and processing time.
It may be desirable to have a more efficient and effective manner of notifying applications to changes to parameters of a printing system.